#ifndef PLAYER_H
#define PLAYER_H

#include <QPoint>
#include <string>
class ChessBoard;
class ChessMethod;
class GameRule;

class Player{
public:
    Player():_isMyTurn(false){};
    Player(std::string side,ChessMethod* chessMethod):_side(side),_chessMethod(chessMethod),_isMyTurn(false){}
    virtual std::string getSide(){
        return _side;
    }
    virtual void setSide(std::string s){
        _side = s;
    }
    virtual void setChessMethod(ChessMethod* chessMethod){
        _chessMethod = chessMethod;
    }
    virtual void setIsMyTurn(bool b){
        _isMyTurn = b;
    }
    virtual bool getIsMyTurn(){
        return _isMyTurn;
    }
    virtual void doChess(ChessBoard*,GameRule*);
    virtual ChessMethod* getMethod(){
        return _chessMethod;
    }
protected:
    std::string _side;
    bool _isMyTurn;
    ChessMethod* _chessMethod;
    int _score;
private:

};

#endif // PLAYER_H
